home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / catD / dtimeout.z / dtimeout
Encoding:
Text File  |  2002-10-03  |  6.2 KB  |  132 lines

  1.  
  2.  
  3.  
  4. ddddttttiiiimmmmeeeeoooouuuutttt((((DDDD3333))))                                                      ddddttttiiiimmmmeeeeoooouuuutttt((((DDDD3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _dddd_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt - execute a function on a specified processor after a specified
  10.      length of time
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_tttt_yyyy_pppp_eeee_ssss_...._hhhh_>>>>
  14.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_dddd_dddd_iiii_...._hhhh_>>>>
  15.      _tttt_oooo_iiii_dddd______tttt _dddd_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt_((((_vvvv_oooo_iiii_dddd _((((_****_f_n_))))_((((_))))_,,,, _vvvv_oooo_iiii_dddd _****_a_r_g_,,,, _llll_oooo_nnnn_gggg _t_i_c_k_s_,,,, _pppp_llll______tttt _p_l_,,,,
  16.           _pppp_rrrr_oooo_cccc_eeee_ssss_ssss_oooo_rrrr_iiii_dddd______tttt _p_r_o_c_e_s_s_o_r_,,,, _a_r_g_2_,,,, _a_r_g_3_,,,, _a_r_g_4_))))_;;;;
  17.  
  18.    AAAArrrrgggguuuummmmeeeennnnttttssss
  19.      _f_n          Function to execute on the specified processor when the time
  20.                  increment expires.
  21.  
  22.      _a_r_g, _a_r_g_2, _a_r_g_3, _a_r_g_4
  23.                  Argument to the function.
  24.  
  25.      _t_i_c_k_s       Number of clock ticks to wait before the function is called.
  26.  
  27.      _p_l          The interrupt priority level at which the function will be
  28.                  called.
  29.  
  30.      _p_r_o_c_e_s_s_o_r   Processor on which the function must execute.
  31.  
  32. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  33.      _dddd_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt causes the function specified by _f_n to be called after the time
  34.      interval specified by _t_i_c_k_s, on the processor specified by _p_r_o_c_e_s_s_o_r, at
  35.      the interrupt priority level specified by _p_l.  _a_r_g will be passed as the
  36.      only argument to function _f_n.  The _dddd_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt call returns immediately
  37.      without waiting for the specified function to execute.
  38.  
  39.    RRRReeeettttuuuurrrrnnnn VVVVaaaalllluuuueeeessss
  40.      If the function specified by _f_n is successfully scheduled, _dddd_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt
  41.      returns a non-zero identifier that can be passed to _uuuu_nnnn_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt to cancel
  42.      the request.  If the function could not be scheduled on the specified
  43.      processor, _dddd_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt returns a value of 0.
  44.  
  45. UUUUSSSSAAAAGGGGEEEE
  46.      This directed timeout capability provides a form of dynamic processor
  47.      binding for driver code.
  48.  
  49.      Drivers should be careful to cancel any pending _dddd_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt functions that
  50.      access data structures before these structures are de-initialized or
  51.      deallocated.
  52.  
  53.    ffffnnnn AAAArrrrgggguuuummmmeeeennnntttt
  54.      The function specified by _f_n must not lower the priority level below _p_l.
  55.  
  56.      After the time interval has expired, _f_n only runs if the processor is at
  57.      base level.  Otherwise, _f_n is deferred until some time in the near
  58.      future.
  59.  
  60.  
  61.                                                                         PPPPaaaaggggeeee 1111
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. ddddttttiiiimmmmeeeeoooouuuutttt((((DDDD3333))))                                                      ddddttttiiiimmmmeeeeoooouuuutttt((((DDDD3333))))
  69.  
  70.  
  71.  
  72.      If _dddd_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt is called holding a lock that is contended for by _f_n, the
  73.      caller must hold the lock at a processor level greater than the base
  74.      processor level.
  75.  
  76.    ttttiiiicccckkkkssss AAAArrrrgggguuuummmmeeeennnntttt
  77.      The length of time before the function is called is not guaranteed to be
  78.      exactly equal to the requested time, but will be at least _t_i_c_k_s-_1 clock
  79.      ticks in length.
  80.  
  81.      A _t_i_c_k_s argument of 0 has the same effect as a _t_i_c_k_s argument of 1.  Both
  82.      will result in an approximate wait of between 0 and 1 tick (possibly
  83.      longer).
  84.  
  85.    ppppllll AAAArrrrgggguuuummmmeeeennnntttt
  86.      _p_l must specify a priority level greater than or equal to _p_l_t_i_m_e_o_u_t;
  87.      thus, _p_l_b_a_s_e cannot be used.  See _LLLL_OOOO_CCCC_KKKK______AAAA_LLLL_LLLL_OOOO_CCCC(D3) for a list of values for
  88.      _p_l. Your driver should treat pl as an "opaque" and should not try to
  89.      compare or do any operation
  90.  
  91.    LLLLeeeevvvveeeellll
  92.      Base or Interrupt.
  93.  
  94.    SSSSyyyynnnncccchhhhrrrroooonnnniiiizzzzaaaattttiiiioooonnnn CCCCoooonnnnssssttttrrrraaaaiiiinnnnttttssss
  95.      Driver-defined basic locks, read/write locks, and sleep locks may be held
  96.      across calls to this function.
  97.  
  98. RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
  99.      _iiii_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt(D3), _LLLL_OOOO_CCCC_KKKK______AAAA_LLLL_LLLL_OOOO_CCCC(D3), _uuuu_nnnn_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt(D3)
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.                                                                         PPPPaaaaggggeeee 2222
  128.  
  129.  
  130.  
  131.